package com.example.demo.day0227;

public class DemoGenericsInterface {
    public static void main(String[] args) {
        B1 b1 = new B1();
        B1<String> b11 = new B1<String>();//实现未指定泛型的接口时创建的对象必须和接口一起指明泛型

        B2 b2 = new B2();
//        B2<String> b2 = new B2<String>//实现指定类型的接口时创建的对象不需要指明泛型
    }
}

interface  TB<T>{//定义一个接口
    T test(T t);
}

class B1<T> implements TB<T>{//未传入实参时，与泛型类的定义相同，在声明类的时候需要将泛型的声明一起加到类中
    public T test(T t) {
        return t;
    }
}

class B2 implements TB<String>{//若实现接口时指定了接口的泛型的具体数据，这个类实现接口所有方法的位置都要把泛型替换成相对应的数据类型

    public String test(String t) {
        return t;
    }
}